使用命令行和 sips 转换图像文件格式

从命令行转换图像文件

由于 OS X(和大多数 Linux 发行版)中直接内置了各种工具,将图像转换为新文件格式非常容易。虽然 最简单的方法是使用预览 来转换图像,有一个命令行选项使用我们之前讨论过的相同 sips 工具来执行 从命令行批量调整大小。使用 sips,您可以将单个图像转换为新的图像格式,甚至可以执行批量图像转换。

从命令行进行简单的图像转换

要使用 sips 转换单个图像,请使用以下命令字符串语法:

sips -s format [图像类型] [文件名] --out [输出文件]

例如,在您要转换为 PNG 的名为“test.jpg”的文件上,sips 语法为:

sips -s format png test.jpg --out test.png

使用 sips 进行批量图像转换

转换一组图像有点棘手,并且使用简单的通配符(例如在使用 sips 调整大小时)效果不太一样。您会发现使用像 * 这样的通用通配符也不会重命名文件,因此我们将使用非常简单的 shell 脚本来代替以下命令语法:

<代码>在 [文件名] 中为我; do sips -s format [图像类型] $i –out [目的地]/$i.[扩展名]完成

使用它,我们将在当前目录的新子文件夹中将 .jpeg 文件的文件夹转换为 png 文件,称为“已转换”:

<代码>我在 *.jpeg 中;做 sips -s format png $i –out Converted/$i.pngdone

运行该命令可能会导致新目录中的所有 JPEG 图像都转换为 PNG 格式。

一个可能令人讨厌的问题是生成的文件名中也会包含原始文件类型,这意味着您最终会得到标题为“test.jpeg.png”的文件。文件扩展名保持正确,这只是一个命名问题。您可以通过重命名它们来解决这个问题,然后 添加正确的文件扩展名 然后使用类似的 bash 脚本,使用正则表达式,或使用 mv 手动重命名。

当使用某些文件格式运行 sips 时,您可能会遇到关于 exif 数据的“lingpng 警告”错误,这些错误在大多数情况下可以忽略,图像转换仍然会发生。

感谢 Thom 的批量转换想法